/* 
 * JUGJobs -- A Jobs Posting Application for Java Users Groups and Other Groups
 * $Id: RSSAction.java,v 1.4 2006/06/26 04:59:05 biglee Exp $
 * 
 * ***** BEGIN LICENSE BLOCK *****
 * Version: MPL 1.1
 *
 * The contents of this file are subject to the Mozilla Public License Version
 * 1.1 (the "License"); you may not use this file except in compliance with
 * the License. You may obtain a copy of the License at
 * http://www.mozilla.org/MPL/
 *
 * Software distributed under the License is distributed on an "AS IS" basis,
 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
 * for the specific language governing rights and limitations under the
 * License.
 *
 * The Original Code is the JUGJobs project.
 *
 * The Initial Developers of the Original Code are the members of the Triangle
 * Java User's Group in the RTP area of North Carolina.
 * Portions created by the Initial Developer are Copyright (C) 2005
 * the Initial Developers. All Rights Reserved.
 *
 * Contributor(s):
 *
 * ***** END LICENSE BLOCK ***** 
 */package org.jugjobs.action;

import java.util.ArrayList;
import java.util.Iterator;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.jugjobs.form.JobBean;
import org.jugjobs.model.JobList;
import org.jugjobs.util.StrippingHtmlScanner;

import com.sun.syndication.feed.synd.SyndContent;
import com.sun.syndication.feed.synd.SyndContentImpl;
import com.sun.syndication.feed.synd.SyndEntry;
import com.sun.syndication.feed.synd.SyndEntryImpl;
import com.sun.syndication.feed.synd.SyndFeed;
import com.sun.syndication.feed.synd.SyndFeedImpl;
import com.sun.syndication.io.SyndFeedOutput;

public class RSSAction extends CommonAction {


	public ActionForward execute(
			ActionMapping mapping, 
			ActionForm form, 
			HttpServletRequest req, 
			HttpServletResponse resp) throws Exception {
		SyndFeed feed = new SyndFeedImpl();
		feed.setFeedType("rss_2.0");
		feed.setTitle("Jobs posted on list");
		feed.setLink(
				"http://"+req.getServerName()
				+":"+req.getServerPort()
				+req.getContextPath()+
				"/jobList.do");
		feed.setDescription("Jobs posted in the Jobs List");
		feed.setEncoding("iso-8859-1");
		ArrayList entries = new ArrayList();
		SyndEntry entry;
	    SyndContent description;
		JobList jobs = getModelBean(servlet);
		for(Iterator it=jobs.getPostingsList().iterator();it.hasNext();) {
			JobBean job = (JobBean)it.next();
			entry = new SyndEntryImpl();
			entry.setTitle(job.getJob_title());
			entry.setLink(
				"http://"+req.getServerName()
				+":"+req.getServerPort()
				+req.getContextPath()+
				"/displayJob.do?jobNumber="+job.getJob_number());
			entry.setPublishedDate(job.getLastEditTimestamp());
			description = new SyndContentImpl();
		    description.setType("text/plain");
		    description.setValue(new StrippingHtmlScanner(job.getJob_desc()).summarize());
		    entry.setDescription(description);
		    entries.add(entry);
		}
		feed.setEntries(entries);
		SyndFeedOutput output = new SyndFeedOutput();
		try {
			resp.setContentType("text/xml");
			output.output(feed,resp.getWriter());
			resp.getWriter().flush();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			logger.log(e);
		}
		return null;
	}

}
